# coding=utf8
# 实例在变量赋值时 Number 对象将被创建：

var1 = 1
var2 = 10
# 使用del语句删除一些 Number 对象引用。
del var1, var2

# Number 类型转换
# int(x [,base ])         将x转换为一个整数
# long(x [,base ])        将x转换为一个长整数
# float(x )               将x转换到一个浮点数
# complex(real [,imag ])  创建一个复数
# str(x )                 将对象 x 转换为字符串
# repr(x )                将对象 x 转换为表达式字符串
# eval(str )              用来计算在字符串中的有效Python表达式,并返回一个对象
# tuple(s )               将序列 s 转换为一个元组
# list(s )                将序列 s 转换为一个列表
# chr(x )                 将一个整数转换为一个字符
# unichr(x )              将一个整数转换为Unicode字符
# ord(x )                 将一个字符转换为它的整数值
# hex(x )                 将一个整数转换为一个十六进制字符串
# oct(x )                 将一个整数转换为一个八进制字符串

print int(16L)
print long(16)
print float(16)
print complex(16)
print str(16)
print repr('[a-zA-Z][0-9a-zA-Z]*')
print eval('1+1')
print tuple([1, 2])
print list((1, 2))
print chr(97)
print unichr(97)
print ord('a')
print hex(22)
print oct(22)

# Python math 模块提供了许多对浮点数的数学运算函数。
# Python cmath 模块包含了一些用于复数运算的函数。
# cmath 模块的函数跟 math 模块函数基本一致，区别是 cmath 模块运算的是复数，math 模块运算的是数学运算。
import math, cmath

print dir(math)
print dir(cmath)
print cmath.sqrt(-1)
print cmath.sqrt(9)
print cmath.sin(1)
print cmath.log10(100)

# 随机数函数
import random

l = range(3)
for i in l:
    print random.choice(l)
print '----'
for i in l:
    print random.randrange(0, 3)
print '----'
for i in l:
    print random.random()
print '----'
x = [1, 2, 3]
random.shuffle(x)
print x
print '----'
for i in l:
    print random.uniform(1, 3)
print '----'
print math.e
print math.pi